/**
 * 创建系统管理员账号
 */

// 导入模块
const cloudBase = require('./framework/cloud/cloud_base.js');
const timeUtil = require('./framework/helpers/time_util.js');
const util = require('./framework/helpers/util.js');
const md5Lib = require('./framework/lib/md5_lib.js');
const dataUtil = require('./framework/helpers/data_util.js');

// 初始化云基础
cloudBase.init();
const db = cloudBase.getDatabase();

async function createAdmin() {
    console.log('=== 开始创建管理员 ===');
    
    try {
        // 检查管理员是否已存在
        const adminColl = db.collection('oa_admin');
        const existAdmin = await adminColl.where({
            ADMIN_NAME: 'admin'
        }).get();
        
        if (existAdmin.data && existAdmin.data.length > 0) {
            console.log('管理员已存在，正在更新...');
            
            // 更新管理员状态和密码
            await adminColl.where({
                ADMIN_NAME: 'admin'
            }).update({
                data: {
                    ADMIN_PASSWORD: md5Lib.md5('admin123456'),
                    ADMIN_STATUS: 1,
                    ADMIN_TYPE: 1, // 超级管理员
                    ADMIN_DESC: '系统管理员',
                    ADMIN_EDIT_TIME: timeUtil.time()
                }
            });
            
            console.log('管理员更新成功！');
        } else {
            console.log('管理员不存在，正在创建...');
            
            // 创建新管理员
            const token = dataUtil.genRandomString(32);
            const adminData = {
                _pid: 'oa',
                ADMIN_ID: util.getProjectId() + '_' + dataUtil.genRandomString(16),
                ADMIN_NAME: 'admin',
                ADMIN_PASSWORD: md5Lib.md5('admin123456'),
                ADMIN_DESC: '系统管理员',
                ADMIN_STATUS: 1, // 启用
                ADMIN_TYPE: 1, // 超级管理员
                ADMIN_LOGIN_CNT: 0,
                ADMIN_LOGIN_TIME: 0,
                ADMIN_TOKEN: token,
                ADMIN_TOKEN_TIME: timeUtil.time(),
                ADMIN_ADD_TIME: timeUtil.time(),
                ADMIN_EDIT_TIME: timeUtil.time()
            };
            
            await adminColl.add({
                data: adminData
            });
            
            console.log('管理员创建成功！');
        }
        
        console.log('=== 管理员账号信息 ===');
        console.log('账号: admin');
        console.log('密码: admin123456');
        
    } catch (error) {
        console.error('创建管理员失败：', error);
    }
}

// 执行创建管理员
createAdmin().then(() => {
    console.log('脚本执行完毕');
    process.exit(0);
}).catch(err => {
    console.error('脚本执行出错：', err);
    process.exit(1);
}); 